In a content delivery system, gateways can be used as relays or storage devices to store content (e.g., movies) from a content delivery network (“CDN”). Each gateway would have a dedicated portion of memory set aside for storing movies to be accessed by users outside of the homes where the gateways are located. The gateways and CDN would presumably be owned or managed by a content or service provider who is providing VOD (video on demand) services. As a result, when a user wants to view a movie, the user does not necessarily need to acquire the movie from the CDN server. The user may acquire a copy of the movie stored in a home gateway in the vicinity of the user (e.g., in the user's neighborhood or city). One benefit of this approach is alleviation of traffic on the CDN's servers and over ISP networks. Since the CDN typically pays for the use of ISP networks, accessing locally stored or cached movies also reduces the CDN's cost for providing the movie. The CDN may also receive cost savings since the CDN can have a smaller server cluster than would otherwise be needed if the gateways were not utilized. Another benefit of this approach is that potential delay of accessing the requested movie is reduced (i.e., it may be quicker to access the movie from a nearby gateway than from a remote CDN server).
Although there are a number of benefits there are also a number of potential issues with the traditional approach. For example, where should a movie be cached or stored? How many copies of a movie should be cached or stored? (e.g., how many copies per block? per city?) How to efficiently use the gateway's limited bandwidth? For example, gateways can only be accessed for a limited number (e.g., 5) of simultaneous downloads. Additionally, there are different costs associated with accessing nearby gateways, remote gateways and the CDN server.
Thus, a need exists for solving these issues and minimizing the operating costs of the content delivery system.